# RUN: llc -march=amdgcn -verify-machineinstrs -run-pass=liveintervals,amdgpu-pre-ra-optimizations %s -o - | FileCheck -check-prefix=GCN %s

---
# GCN-LABEL: name: combine_sreg64_inits
# GCN: %0:sgpr_64 = S_MOV_B64_IMM_PSEUDO 8589934593
# GCN: S_NOP 0
name:            combine_sreg64_inits
tracksRegLiveness: true
body:             |
  bb.0:
    undef %0.sub0:sgpr_64 = S_MOV_B32 1
    S_NOP 0
    %0.sub1:sgpr_64 = S_MOV_B32 2
...
---
# GCN-LABEL: name: combine_sreg64_inits_swap
# GCN: %0:sgpr_64 = S_MOV_B64_IMM_PSEUDO 8589934593
# GCN: S_NOP 0
name:            combine_sreg64_inits_swap
tracksRegLiveness: true
body:             |
  bb.0:
    undef %0.sub1:sgpr_64 = S_MOV_B32 2
    S_NOP 0
    %0.sub0:sgpr_64 = S_MOV_B32 1
...
---
# GCN-LABEL: name: sreg64_inits_different_blocks
# GCN: undef %0.sub0:sgpr_64 = S_MOV_B32 1
# GCN: %0.sub1:sgpr_64 = S_MOV_B32 2
name:            sreg64_inits_different_blocks
tracksRegLiveness: true
body:             |
  bb.0:
    undef %0.sub0:sgpr_64 = S_MOV_B32 1

  bb.1:
    %0.sub1:sgpr_64 = S_MOV_B32 2
...
---
# GCN-LABEL: name: sreg64_inits_two_defs_sub1
# GCN: undef %0.sub0:sgpr_64 = S_MOV_B32 1
# GCN: %0.sub1:sgpr_64 = S_MOV_B32 2
# GCN: %0.sub1:sgpr_64 = S_MOV_B32 3
name:            sreg64_inits_two_defs_sub1
tracksRegLiveness: true
body:             |
  bb.0:
    undef %0.sub0:sgpr_64 = S_MOV_B32 1
    %0.sub1:sgpr_64 = S_MOV_B32 2
    %0.sub1:sgpr_64 = S_MOV_B32 3
...
---
# GCN-LABEL: name: sreg64_inits_two_defs_sub0
# GCN: undef %0.sub0:sgpr_64 = S_MOV_B32 1
# GCN: %0.sub1:sgpr_64 = S_MOV_B32 2
# GCN: %0.sub0:sgpr_64 = S_MOV_B32 3
name:            sreg64_inits_two_defs_sub0
tracksRegLiveness: true
body:             |
  bb.0:
    undef %0.sub0:sgpr_64 = S_MOV_B32 1
    %0.sub1:sgpr_64 = S_MOV_B32 2
    %0.sub0:sgpr_64 = S_MOV_B32 3
...
---
# GCN-LABEL: name: sreg64_inits_full_def
# GCN: undef %1.sub0:sgpr_64 = S_MOV_B32 1
# GCN: %0:sgpr_64 = S_MOV_B64 3
name:            sreg64_inits_full_def
tracksRegLiveness: true
body:             |
  bb.0:
    undef %0.sub0:sgpr_64 = S_MOV_B32 1
    %0:sgpr_64 = S_MOV_B64 3
...
---
# GCN-LABEL: name: sreg64_inits_imp_use
# GCN: %0.sub0:sgpr_64 = S_MOV_B32 1, implicit $m0
# GCN: %0.sub1:sgpr_64 = S_MOV_B32 2
name:            sreg64_inits_imp_use
tracksRegLiveness: true
body:             |
  bb.0:
    undef %0.sub0:sgpr_64 = S_MOV_B32 1, implicit $m0
    %0.sub1:sgpr_64 = S_MOV_B32 2
...
---
# GCN-LABEL: name: sreg64_inits_imp_def
# GCN: %0.sub0:sgpr_64 = S_MOV_B32 1, implicit-def $scc
# GCN: %0.sub1:sgpr_64 = S_MOV_B32 2
name:            sreg64_inits_imp_def
tracksRegLiveness: true
body:             |
  bb.0:
    undef %0.sub0:sgpr_64 = S_MOV_B32 1, implicit-def $scc
    %0.sub1:sgpr_64 = S_MOV_B32 2
...
